#ifndef GLGUIEVENT_H
#define GLGUIEVENT_H
#include <vector>
#include <oopgl_base/GlEvent.hpp>
#include "GlActionChain.h"


using namespace std;



class GlWidget;



class GlGuiEvent : public GlEvent
{

private:

  const GlEvent * _pCauseEvent;
  vector< GlActionChain * > _relatedActionChains;

public:

  GlGuiEvent (const GlEvent * pCauseEvent = NULL);
  GlGuiEvent (const GlGuiEvent & e);

  void registerActionChain (GlActionChain * pActionChain);

  void doActions();

  const GlEvent * getCauseEvent () const;
  void setCauseEvent (const GlEvent * pCauseEvent);


};  //end class GlGuiEvent



#endif
